import zipfile
import os
# pip install pywin32
import win32com.client as win32
import random


# 将指定文件夹压缩为ZIP文件
def zip_folder(folder_path, zip_path):
    with zipfile.ZipFile(zip_path, 'w', zipfile.ZIP_DEFLATED) as zipf:  # 使用'w'模式创建或覆盖ZIP文件，并使用DEFLATED方法压缩
        for root, dirs, files in os.walk(folder_path):
            for file in files:
                file_path = os.path.join(root, file)
                zipf.write(file_path, file_path[len(folder_path) + 1:])

            # 定重命名文件，将文件扩展名从.zip更改为.docx


def re_name(path):
    old_name = path
    new_name = path[:-4] + '.docx'
    os.rename(old_name, new_name)
    return new_name


# 当前文件夹
# BASE_FOLDER_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

BASE_FOLDER_DIR = "D:\\workspace\\temp"
docx_path = os.path.join(BASE_FOLDER_DIR, "temp1.docx")
m = str(random.random())  # 生成一个随机数【这个地方是我偷懒了一下直接用随机数命名，这样不用担心重复
m = "new1-1"
# zip_path = f"{BASE_FOLDER_DIR}\{m}.zip"
zip_path = f"{BASE_FOLDER_DIR}\{m}.zip"
zip_folder(docx_path, zip_path)  # 压夹
new_docx = re_name(zip_path)  # 重命名压缩缩文件文件为.docx扩展名

# # 创建Word应用程序对象
# word = win32.gencache.EnsureDispatch('Word.Application')  # 确保Word应用程序对象存在，如果不存在则创建
#
# # 打开Word文档
# word.Documents.Open(new_docx)
# word.Visible = True  # 设置Word应用程序窗口为可见
